LINQ partitioneringsoperatoren
Een partitioneringsquery's neemt een inputreeks en retourneren een "stuk" als outputreeks. Deze operatoren kan je gebruiken om grote sequenties in "pagina's" op te breken. Dat heet paging,
Take
De Take query operator neemt een input reeks en geeft het opgegeven aantal elementen terug als uitvoerreeks.
De volgende code laat zien hoe je de Take query operator kan gebruiken om de eerste drie personen in de Personen reeks te retourneren.
static void LinqTakeOperator() { Personen[] personen = { new Personen { Name = "Jan", Leeftijd = 60 }, new Personen { Name = "An", Leeftijd = 100 }, new Personen { Name = "Peter", Leeftijd = 15 }, new Personen { Name = "Marijke", Leeftijd = 40 }, new Personen { Name = "Judith", Leeftijd = 20 } }; IEnumerable<Personen> eersteDriePersonen = personen.Take(3); Console.WriteLine("Namen van de eerste drie personen:"); foreach (Personen persoon in eersteDriePersonen) { Console.WriteLine(persoon.Name); } }
TakeWhile
De TakeWhile
queryoperator retourneert geen van te voren vast bepaald aantal elementen, maar blijft daarentegen elementen retourneren zolang een gespecificeerd predikaat waar is.
In de volgende code worden Personen gertourneerd zolang de leeftijd niet 11 is.
Personen[] personen = { new Personen { Name = "Jan", Leeftijd = 60 }, new Personen { Name = "An", Leeftijd = 100 }, new Personen { Name = "Peter", Leeftijd = 15 }, new Personen { Name = "Hans", Leeftijd = 11 }, new Personen { Name = "Marijke", Leeftijd = 40 }, new Personen { Name = "Judith", Leeftijd = 20 } }; IEnumerable<Personen> personenZolangGeenElfJaar = personen.TakeWhile(x => x.Leeftijd != 11); Console.WriteLine("Namen tot er een persoon van 11 jaar wordt tegengekomen:"); foreach (Personen persoon in personenZolangGeenElfJaar) { Console.WriteLine(persoon.Name); }
2018-01-20 15:35:20